#pragma once 
#include <string>

class Preloader
{
private:
    Preloader() = default;
    std::string configContent;
    
    // disable copy constructor, '= delete' explicitly deny this type of operation
    Preloader(const Preloader&) = delete;
    // disable assign operator
    Preloader& operator=(const Preloader&) = delete;

public:
    // get instance by reference 
    static Preloader& getInstance();

    // get instance by pointer 
    const Preloader* getInstancePointer() const;
    
    bool loadConfig(const std::string& filePath);
    std::string getConfigContent() const;
};